package cn.com.cifi.mars.service;

import java.util.List;

import cn.com.cifi.mars.bean.dto.AllProjectIndexDto;
import cn.com.cifi.mars.bean.dto.ProjectCountDto;
import cn.com.cifi.mars.bean.dto.ProjectStagesDto;
import cn.com.cifi.mars.bean.dto.ProjectStagesVersionDto;
import cn.com.cifi.mars.bean.dto.ProjectUnderwayDto;
import cn.com.cifi.mars.bean.dto.ProjectValueDto;
import cn.com.cifi.mars.bean.vo.workBench.ProjectIndexVO;
import cn.com.cifi.mars.entity.MdmProject;
import cn.com.cifi.mars.entity.PriceVersion;
import cn.com.cifi.mars.entity.common.ProjectByStages;

public interface ProjectConsoleService {

	/**
	 * 
	 * @Description：获取项目分期
	 * @author：yyd
	 * @date：2020年3月9日 上午9:40:13
	 */
	List<ProjectStagesDto> queryProjectStageList(List<MdmProject> projectIds);
	/**
	 * 
	 * 
	 * @Description：获取存在版本的所有项目
	 * @author：yyd
	 * @date：2020年3月9日 上午10:51:47
	 */
	List<PriceVersion> selectAllProject();
	/**
	 * 
	 * @Description：获取存在版本的所有项目的分期版本数据
	 * @author：yyd
	 * @date：2020年3月9日 下午3:59:23
	 */
	List<ProjectStagesVersionDto> selectVersionDataList(List<MdmProject> projectList);
	/**
	 * 
	 * @Description：根据分期ID获取版本数据
	 * @author：yyd
	 * @date：2020年3月9日 下午3:59:23
	 */
	List<ProjectStagesVersionDto> selectVersionDataListByStageId(String stageId);
	/**
	 * 
	 * @Description：获取数据权限项目信息
	 * @param projectIds
	 * @author：yyd
	 * @date：2020年3月9日 下午5:36:52
	 */
	List<MdmProject> selectProjectByDataPermission(List<String> projectIds,String currentPage, String pageSize,String projectName);
	
	/**
	 * 
	 * @Description：获取项目正在进行列表
	 * @return List<ProjectUnderwayDto>
	 * @author：yyd
	 * @date：2020年3月9日 下午9:08:03
	 */
	List<ProjectUnderwayDto> selectUnderwayList(String projectId);
	/**
	 * 
	 * @Description：获取项目父级
	 * @param projectId
	 * @return List<ProjectByStages>
	 * @author：yyd
	 * @date：2020年3月9日 下午9:32:42
	 */
	List<ProjectByStages> selectParentData(String projectId);
	/**
	 * 
	 * @Description：所有项目指标数据
	 * @author：yyd
	 * @date：2020年3月11日 下午2:29:07
	 */
	AllProjectIndexDto selectAllProjectIndex(List<String> projectIds,String date);
	/**
	 * 
	 * @Description：项目总货值
	 * @author：yyd
	 * @date：2020年3月11日 下午2:56:15
	 */
	List<ProjectValueDto> selectProjectValueList(List<MdmProject> projectList, String date);
	/**
	 * 
	 * @Description：项目指标数据
	 * @author：yyd
	 * @date：2020年3月11日 下午3:08:34
	 */
	ProjectIndexVO selectProjectIndex(String projectId, String date);
	/**
	 * 
	 * @Description：获取总条数
	 * @param projectIds
	 * @param projectName
	 * @return int
	 * @author：yyd
	 * @date：2020年4月14日 下午3:30:54
	 */
	int selectTotalCount(List<String> projectIds, String projectName);
	List<ProjectCountDto> selectProjectCountList(List<String> projectIds, String date);

}
